/**
 * jsonwebtoken 模块的使用
 *
 * 1. 下载
 *    npm install jsonwebtoken
 * 2. 引入
 *
 * 3. 两个方法的使用  sign    签发token
 *                 verify  校验token
 */

const jwt = require("jsonwebtoken");

// jwt.sign(payload, secret, options)
//   payload 里面就是 token 中存放的数据
//   secret  密钥  这个不要泄露
//   options 一些配置选项
//     expiresIn  过期时间

// jwt.verify(token, secret)
//    token   要校验的token
//    secret  签发token的密钥
// 如果校验成功，会返回 token 中得 payload 数据
// 如果校验不成功，会报错

const secret = "ABCDEFG";

// 签发token
const token = jwt.sign(
  {
    username: "张安",
    age: 18,
  },
  secret,
  {
    // 过期时间
    //  10   10秒
    //  '2d'  2天
    //  '2m'  2分钟
    expiresIn: "2d",
  }
);

console.log(token);
// eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IuW8oOWuiSIsImFnZSI6MTgsImlhdCI6MTY2MDg5NDY0MCwiZXhwIjoxNjYxMDY3NDQwfQ.X5rPvr7W3kS2RdsX-uCKZmIbc3PwWwx94jr1ZzVDNCc

// 校验token
const decodeData = jwt.verify("token", secret);
console.log(decodeData);
